// pages/login/login.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    phone: '',
    code: '',
    isCode: false,
    countdown: 0, // 当前剩余秒数
    timer: null, // 存储计时器ID  
    token: '',
    refreshToken: ''



  },


  getCode() {
    // 节流
    if (this.data.isCode) {
      return
    }

    //填写手机号获取验证码
    // 手机号验空
    if (this.data.phone == '') {
      wx.showToast({
        title: '手机号不能为空',
        icon: 'none'
      })
      return
    }
    // 验证手机号长度
    if (this.data.phone.length != 11) {
      wx.showToast({
        title: '请输入正确的手机号（11位）',
        icon: 'none'
      })
      return
    }
    // 验证手机号格式11位
    var reg = /^1[3-9]\d{9}$/
    if (!reg.test(this.data.phone)) {
      wx.showToast({
        title: '请输入正确的手机号（格式）',
        icon: 'none'
      })
      return
    }

    this.setData({
      isCode: true
    })
    this.startCountdown()
    //获取验证码
    wx.request({
      url: 'https://live-api.itheima.net/code',
      data: {
        mobile: this.data.phone
      },
      success: (res) => {
        if (res.data.code == 10000) {
          wx.showToast({
            title: '获取验证码成功',
            icon: 'success'
          })
          console.log(res.data.data)
          this.setData({
            code: res.data.data.code
          })
        } else {
          wx.showToast({
            title: '获取验证码失败',
            icon: 'none'
          })
        }
      }
    })




  },
  login() {
    // 手机号验空
    if (this.data.phone == '') {
      wx.showToast({
        title: '手机号不能为空',
        icon: 'none'
      })
      return
    }
    // 验证手机号格式11位
    var reg = /^1[3-9]\d{9}$/
    if (!reg.test(this.data.phone)) {
      wx.showToast({
        title: '请输入正确的手机号（格式）',
        icon: 'none'
      })
      return
    }
    // 验证码验空
    if (this.data.code == '') {
      wx.showToast({
        title: '验证码不能为空',
        icon: 'none'
      })
      return
    }
    // 验证码长度
    if (this.data.code.length != 6) {
      wx.showToast({
        title: '请输入正确的验证码（6位）',
        icon: 'none'
      })
      return
    }
    //验证码格式
    var reg = /^[0-9]+$/
    if (!reg.test(this.data.code)) {
      wx.showToast({
        title: '请输入正确的验证码（格式）',
        icon: 'none'
      })
      return
    }
    // 登录
    wx.request({
      url: 'https://live-api.itheima.net/login',
      method: 'POST',
      header: {
        'Content-Type': 'application/json',
        Authorization : 'Bearer ' + getApp().globalData.token
      },
      data: {
        mobile: this.data.phone,
        code: this.data.code
      },
      success: (res) => {
        if (res.data.code == 10000) {
          wx.showToast({
            title: '登录成功',
            icon: 'success'
          })
          console.log(res.data.data)
          // 登录成功后，将token存储到本地存储
          wx.setStorageSync('token', res.data.data.token)
          // 登录成功后，将refreshToken存储到本地存储
          wx.setStorageSync('refreshToken', res.data.data.refreshToken)
          // 把token和refreshToken存储到应用实例中
          getApp().globalData.token = wx.getStorageSync('token')
          getApp().globalData.refreshToken = wx.getStorageSync('refreshToken')
          console.log("登录成功后，将token存储到应用实例中" + getApp().globalData.token)
          console.log("登录成功后，将refreshToken存储到应用实例中" + getApp().globalData.refreshToken)


          // console.log(App.globalData.refreshToken)



          this.setData({
            token: res.data.data.token,
            refreshToken: res.data.data.refreshToken
          })
          // console.log("登录成功后，将token存储到本地存储"+this.data.token)
          // console.log("登录成功后，将refreshToken存储到本地存储"+this.data.refreshToken)
          // 跳转
          wx.switchTab({
            url: '/pages/my/my',
          })
        } else {
          wx.showToast({
            title: '登录失败',
            icon: 'none'
          })
        }
      }
    })


  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    this.stopCountdown()
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    this.stopCountdown()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  // 启动倒计时
  startCountdown() {
    // 清除可能存在的旧计时器
    if (this.data.timer) {
      clearInterval(this.data.timer)
    }

    // 初始化倒计时（60秒）
    this.setData({
      countdown: 60,
      isCounting: true
    })

    // 设置计时器（每秒更新一次）
    const timer = setInterval(() => {
      const newCount = this.data.countdown - 1
      this.setData({
        countdown: newCount
      })

      // 倒计时结束处理
      if (newCount <= 0) {
        clearInterval(timer)
        this.setData({
          timer: null,
          isCounting: false,
          isCode: false,
        })
        // wx.showToast({ title: '倒计时结束!', icon: 'success' })
      }
    }, 1000)

    // 存储计时器ID
    this.setData({
      timer
    })
  },

  // 停止倒计时
  stopCountdown() {
    if (this.data.timer) {
      clearInterval(this.data.timer)
      this.setData({
        timer: null,
        isCounting: false
      })
    }
  },
})